1. Field of the Invention
This invention generally relates to digital wrapper format communications and, more particularly, to a system and method for protecting an overhead message in a buffer from being overwritten in communications with a digital wrapper data processor.
2. Description of the Related Art
As noted in U.S. Pat. No. 6,308,243 (Kido), in a variety of application apparatuses having embedded microcomputers, a real time multitask system is used for processing a number of tasks. In the case where one resource, for example a hard disk drive, is shared for a plurality of tasks, the state of the resource (the contents) can be destroyed by uncontrolled accessing. It is thus necessary for the multitask system to grant exclusive control of the resource access to one task at a time.
A conventional multitask system includes an exclusive control module termed “semaphore” for carrying out the exclusive control. The term, semaphore, is derived from a railroad signaling device with arms. A semaphore, as used in a computer system, remains held in its reset state by an operating system (OS) when the resource is accessed by none of the tasks. When one of the tasks intends to access the resource, it must receive a right of exclusive use from the OS and the semaphore is turned to the set state. While the semaphore for a particular resource is set, the access of the other tasks to the resource is inhibited by the OS.
A completely different, yet related problem exists in the transfer of overhead messages between processors in a digital wrapper format communications network. Networks that are built to be compliant to the International Telecommunications Union ITU-T G.709 (G.709) specification have several bytes in the overhead for the purpose of Operations, Administration, and Maintenance (OA&M). Many of these overhead bytes are used for messaging in the G.709 network. An individual G.709 overhead byte can contain a unique value every single frame, or else can contain a periodically repeating value with repetition rate of either 64 or 256 frames, or else can maintain the same value for a very long time. Further, some of the G.709 overhead bytes are used in conjunction with one another to make up a message that is longer than one byte per G.709 frame. All 64 of the G.709 overhead bytes are normally received and captured in a software accessible memory on a frame-by-frame basis using the integrated circuit that processes the G.709 network data. The overhead bytes are then made accessible to software so that it can probe the OA&M data at any point in time.
There is no method defined in G.709 for determining if any particular overhead byte is in the process of being captured with a new value, or has just been captured with a new value, or has been constant for a length of time. Typically, software needs to read one or more of these captured overhead bytes either periodically or else in response to an interrupt. Because the response time of most software can be relatively slow compared to the time required to receive one frame of data in a G.709 network, the danger exists that stored overhead bytes can be overwritten before they can be read. There is also a danger that the overhead bytes can be written at the same time that they are being read. Alternately, a relatively complicated interface mechanism must be established between processors to insure that the dropped overhead bytes are not being overwritten. These interface mechanisms undesirably require additional parts, layout allocation, execution time, and power.
It would be advantageous if there were a simple interface mechanism to transfer overhead bytes between processors. It would be advantageous if the simple mechanism prevented overhead bytes from being accidentally overwritten.
It would be desirable if the interfacing software had a mechanism for determining if a particular overhead byte (or set of bytes) was in the process of being updated by the integrated circuit, so as to prevent erroneous data from being read.